package org.ko.utils;

import java.util.Calendar;
import java.util.Date;

public final class TimeZoneUtils {

	private final static Calendar calendar;
	
	static {
		calendar = Calendar.getInstance();
	}
	
	/**
	 * 公式 D8time = 已知time - (已知时区 - 要计算的时区)
	 * @param time 时间
	 * @param timeZone 当前时间所在的时区 
	 * @return D8时区对应时间
	 */
	public static Date timeToD8 (Date time, int timeZone) {
		calendar.setTime(time);
		calendar.add(Calendar.HOUR, - (timeZone - 8));
		return calendar.getTime();
	}
	
	/**
	 * 公式 D8time = 已知time - (已知时区 - 要计算的时区)
	 * @param time D8区的时间
	 * @param timeZone 转换目标的时区
	 * @return D8区时间对应timeZone时区的时间
	 */
	public static Date d8ToTime (Date d8Time, int timeZone) {
		calendar.setTime(d8Time);
		calendar.add(Calendar.HOUR, - (8 - timeZone));
		return calendar.getTime();
	}
	
	private TimeZoneUtils () {};
}
